<?php

/**
 * AtividadesController - Atividades
 *
 * @author Fernando Dias Oliveira <rodox17@gmail.com>
 * @package intranet
 * @subpackage controller
 * 
 * informaoes preliminares
 * 
 * Equipamento a ser instalado - text
 * dados da instalacao - text
 * checklist de vistoria
 * ppi
 */

class AtividadesController extends AppBaseController
{
	public function init()
	{
		parent::init();
		
		$this->view->title = "Atividades";	

		$INT006 = new INT006();
		$tipo   = new INT014();
		$status = new INT012();
		
		$this->view->projetos = $INT006->getBid();
		$this->view->tipos    = $tipo->getBid();
		$this->view->status   = $status->getBid();
	}

    public function indexAction() 
    {
		$this->grid("INT007");
    }
    
    public function adicionarAction()
    {
    	if($this->_request->isPost())
		{
			extract($_POST, EXTR_OVERWRITE);
			
			$documento = new INT007();
			$projetos  = new INT006();
			
			$documento->setINT007_cod($cod);
			$documento->setINT007_nome($INT007_nome);
			$documento->setINT007_descricao($INT007_descricao);
			$documento->setINT007_cod_projeto($INT007_cod_projeto);
			$documento->setINT007_data_entrada(Data::getDataEN($INT007_data_entrada));
			$documento->setINT007_tipo($INT007_tipo);
			$documento->setINT007_status($INT007_status);
			$documento->setINT007_login($this->usuario->id);
			$documento->setINT007_data(Data::getDataENNow());
			$documento->setINT007_login_alt($this->usuario->id);
			$documento->setINT007_data_alt(Data::getDataENNow());
			
			$documento->save();
			
			$pro = $projetos->getById($INT007_cod_projeto);

			$this->_redirect("$this->controller/");
		}
    }
    
    public function downloadAction()
    {
    	$INT006 = new INT006();
    	$INT007 = new INT007();
    	$zip    = new ZipArchive();
    	
    	$cod =  $this->_request->getParam("cod");
    	
    	$atividade = $INT007->getById($cod);
    	$projeto = $INT006->getById($atividade[0]["INT007_cod_projeto"]);
    	
    	$dir = "public/projetos/{$projeto[0]["INT006_nome"]}/";
    	$arc = "public/projetos/{$projeto[0]["INT006_nome"]}.zip";
    	
    	/**
    	 * Zip.
    	 * 
    	 * arrumar pastas que ficam salvos os arquivos.
    	 */
    	
    	$zip->open($arc, ZIPARCHIVE::CREATE);
    	
    	foreach(Dir::getArray($dir) as $val)
    	{
    		$zip->addFile($dir . $val);
    	}
    	
    	$zip->close();
    	
    	$proj = str_replace(" ", "_", $projeto[0]["INT006_nome"]);
    	$ativ = str_replace(" ", "_", $atividade[0]["INT007_nome"]);
    	
        header("Content-disposition: attachment; filename=$proj($ativ).zip");

        readfile($arc);
        //unlink($arc);
    	
		exit;
    }
    
    public function excluirAction()
    {
    	$reg = new INT007();
    	
    	$id = $this->getArrCod($this->_request->getParam("cod"));
    	
    	$reg->excluir($id);
    	
    	$this->_redirect("$this->controller/");
    }
    
    public function editarAction()
    {
        if($this->_request->isPost())
		{
			extract($_POST, EXTR_OVERWRITE);
			
			$documento = new INT007();
			$projetos  = new INT006();
			
			$documento->setINT007_cod($cod);
			$documento->setINT007_nome($INT007_nome);
			$documento->setINT007_descricao($INT007_descricao);
			$documento->setINT007_cod_projeto($INT007_cod_projeto);
			$documento->setINT007_data_entrada(Data::getDataEN($INT007_data_entrada));
			$documento->setINT007_tipo($INT007_tipo);
			$documento->setINT007_status($INT007_status);
			$documento->setINT007_login($this->usuario->id);
			$documento->setINT007_data(Data::getDataENNow());
			$documento->setINT007_login_alt($this->usuario->id);
			$documento->setINT007_data_alt(Data::getDataENNow());
			
			$documento->save();
			
			$pro = $projetos->getById($INT007_cod_projeto);
			
			$this->_redirect("$this->controller/");
		}
		else
		{
	    	$reg = new INT007();
	    	
	    	$cod = $this->_request->getParam("cod");
	    	
	    	$arr = $reg->getById($cod);
	    	
	    	$this->view->reg = $arr[0];
		}
    }
    
    public function abrirAction()
    {
    	$reg = new INT007();
    	
    	$cod = $this->_request->getParam("cod");
    	
    	$arr = $reg->getById($cod);
    	
    	$this->view->reg = $arr[0];
    }
    
	public function duplicarAction()
	{
	    if($this->_request->isPost())
		{
			extract($_POST, EXTR_OVERWRITE);
			
			$documento = new INT007();
			$projetos  = new INT006();
			
			$documento->setINT007_cod($cod);
			$documento->setINT007_nome($INT007_nome);
			$documento->setINT007_descricao($INT007_descricao);
			$documento->setINT007_cod_projeto($INT007_cod_projeto);
			$documento->setINT007_data_entrada(Data::getDataEN($INT007_data_entrada));
			$documento->setINT007_tipo($INT007_tipo);
			$documento->setINT007_status($INT007_status);
			$documento->setINT007_login($this->usuario->id);
			$documento->setINT007_data(Data::getDataENNow());
			$documento->setINT007_login_alt($this->usuario->id);
			$documento->setINT007_data_alt(Data::getDataENNow());
			
			$documento->save();
			
			$pro = $projetos->getById($INT007_cod_projeto);

			mkdir("public/projetos/{$pro[0]["INT006_nome"]}/$INT007_nome");
			
			$this->_redirect("$this->controller/");
		}
		else
		{
	    	$reg = new INT007();
	    	
	    	$cod = $this->_request->getParam("cod");
	    	
	    	$arr = $reg->getById($cod);
	    	
	    	unset($arr[0]["INT007_cod"]);
	    	
	    	$this->view->reg = $arr[0];
		}
	}
	
    public function ajaxuploadAction()
    {
    	$INT006 = new INT006();
    	$INT007 = new INT007();
    	$INT016 = new INT016();
    	
    	$cod =  $this->_request->getParam("cod");
    	
    	$data = array("INT016_cod_atividade" => $cod, "INT016_foto" => $_FILES["file"]["name"]);
    	
    	$INT016->save($data);
    	
    	$atividade = $INT007->getById($cod);
    	$projeto   = $INT006->getById($atividade[0]["INT007_cod_projeto"]);
    	
    	Upload::$dir  = "public/projetos/{$projeto[0]["INT006_nome"]}/";
    	Upload::$type = "json";
    	
		Upload::save();
    	
		exit;
    }
    
    public function fotoAction()
    {
    	$reg = new INT007();
	    	
    	$cod = $this->_request->getParam("cod");
    	
    	$arr = $reg->getById($cod);
    	
    	$this->view->reg = $arr[0];
    }
    
    public function fotosAction()
    {
    	$INT006 = new INT006();
    	$INT007 = new INT007();
    	$INT016 = new INT016();
    	
    	$cod =  $this->_request->getParam("cod");
    	
    	$atividade = $INT007->getById($cod);
    	$projeto   = $INT006->getById($atividade[0]["INT007_cod_projeto"]);
    	
    	$dir = "public/projetos/{$projeto[0]["INT006_nome"]}/";
    	$fot = $INT016->getByIdAtividade($atividade[0]["INT007_cod"]);
    	
    	Dir::get($dir, $fot);
    	
    	exit;
    }
    
    public function deletefileAction()
    {
    	$INT016 = new INT016();
    	
    	$cod = $this->_request->getPost("cod");
    	
    	$file = $this->_request->getPost("file");
    	
    	$INT016->excluir($cod, $file);
    	
    	exit;
    }
}
